Many companies and other organizations operate distributed systems that interconnect numerous computing systems and other computing resources to support their operations, such as with the computing systems being co-located (e.g., as part of a local network) or instead located in multiple distinct geographical locations (e.g., connected via one or more private or public intermediate networks). For example, data centers housing significant numbers of interconnected computing systems have become commonplace, such as private data centers that are operated by and on behalf of a single organization and public data centers that are operated by entities as businesses to provide computing resources to customers. As the scale and scope of typical distributed systems have increased, the tasks of provisioning, administering, and managing the computing resources have become increasingly complicated.
Online social networks represent an increasingly common example of a type of service or application that is implemented using a distributed system. Such networks may be operated using social networking services that are widely available to individuals over the Internet. On many such social networks, an individual may create a profile, and the individual may choose to form connections with other profiles representing other individuals. Underlying a social network may be a social graph, where an individual is a node in the graph and each connection is an edge in the graph. In many cases, the connections between nodes may reflect real-world relationships between family members, friends, co-workers, and so on. Using the connections in the graph, users may choose to share various types of data with individual users or groups of users.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning “having the potential to”), rather than the mandatory sense (i.e., meaning “must”). Similarly, the words “include,” “including,” and “includes” mean “including, but not limited to.”